home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Loadstar 128 36
/
q36.d81
/
t.star boot
< prev
next >
Wrap
Text File
|
2022-08-28
|
17KB
|
325 lines
S T A R B O O T
The Ultimate Boot Making Program and Much More
Program and Text by William Laabs
After getting LOADSTAR Quarterly Issue #21 in the mail several months
ago, (as a back issue), and checking out 128 DISK SERVANT, I finally
thought that I had the Ultimate Autoboot Maker program. It did a very good
job of making the Autoboot sector until I ran into a snag. If the Autoboot
sector (Track 1, Sector 0) is already allocated for use by a program on the
disk, it would not let you re-locate that sector somewhere else so you can
free up the sector for the Autoboot code. I then would have to dig up half
a dozen or so utility programs (like a sector editor, file tracer, sector
allocator, etc.) in order to re-locate the used sector, then write the
Autoboot Sector.
Doing this procedure several times convinced me of the need to write
something myself to accomplish all of the above things and have it all
self-contained in one program. Meet STAR BOOT! It has everything you need
to make an Autoboot sector on almost any disk, even if there's 0 blocks
free! Explanation on that later.
The program supports the 1541, 1571, 1581, and the FD-2000 drives and
POSSIBLY the RAMLink, RAMDrive, FD-4000, and the CMD hard drives. The
Native mode and its partitions are not fully supported at this time, but
the 1541, 1571, and 1581 Emulation partitions are fully supported. I say
"possibly" for the RAMLink, RAMDrive, and CMD hard drives because I've
heard that the same emulation partitions can be created on them as they can
for the FD-2000, and that the Native mode partitions are also formatted the
same. I can't say for sure because of not having one here to test, but if
all the formats are the same, they should be fully supported by this
program.
This is my debut in 128 programming and this was much more involved
than I thought. I originally ported a small Machine Language program to
display the 256 block contents, but it only worked on the 40 column screen.
After calling Fender Tucker for help, he sent me a C-128 Programmers'
Reference Guide. I was then able to write my own ML program to display the
256 block contents on an 80 column screen. If you are using this program
with a 1541 drive, the display of this block will be slower. On a 1571 with
a Double-sided disk, the display is little faster. And on the FD-2000, it
is almost instantaneous.
As you might have already guessed, this program is very disk intensive,
since most of it uses Direct Access commands. Never remove the disk and
select an Option. This program was originally written to support only the
1541 and 1571 drives, however when Fender sent me an FD-2000, I added the
code to support it also. Thanks, Fender! There's constant checks to see
which drive and disk you are using as some options will only work with a
certain drive and disk combinations. It slows things down a lot, but it's
very, very necessary. Even with all the checks, something that I didn't
think of might happen, but the program will display the error and abort the
procedure. Just use common sense.
The main problem that might arise is if you try and read/write to the
back side of a disk (tracks 36-70) on a 1541 drive, or read the back side
on a single-sided disk. If you do come across a situation that the program
cannot handle, let me know and I'll try and fix it. Every once in a while
the program will show a '73 Dos version error' when using the 1571 drive.
I'm sure 1571 users have seen this one before. I've tried to minimize it by
initializing the drive before just about any disk access, but some still
slip through. This is the drive's fault and not the program's, in my
opinion. I believe that the direct access commands cause most of them.
In just about every option that you choose, you will notice Drive and
Disk show up. Drive displays either 1541, 1571, 1581, FD-2000 or RESET.
Disk displays either Single, Double, 1541 Emul, 1571 Emul, 1581 Emul, or
Native. This lets you know which disk is currently in the active drive and
whether it's an Emulation partition.
If RESET DISK DRIVE ever shows next to the Drive display, just turn off
the drive and back on and things will start working. Of course, if you had
renumbered or Swapped the drive for another one, you will have to set it up
again.
Now on to the Main Menu Options:
A) 128 To 64 Bootmaker
B) 128 Bootmaker
----------------
These two options work almost exactly the same, so I'll explain them
together and tell you the differences when appropriate. Selecting either of
these options will show you the 256 bytes of Track 1, Sector 0 and tell you
if the sector already has a boot sector, a killed boot sector (more on this
later), is allocated for use by a disk file, or contains no data. If a disk
file is using it, it will give you the option to overwrite it anyway or to
re-locate the information to another sector. This is the beauty of this
program. Selecting Re-locate, it will check if Track 1, Sector 0 is a
starting sector in all directory entries, and if not, it will start a
search of all sectors looking for the sector that points to it. Once it
finds it, it will then search the disk for the first available sector and
ask you if you want to use it. It will then copy T1, S0 to that sector,
change the pointers to your new sector, and allocate it as used. There is
one instance where there are 0 blocks free on the disk that the program
will not find any free sectors. You can still re-locate the sector to Track
18, Sector 18 (on 1541 and 1571 disks) or Track 40, Sector 39 ONLY if your
disk directory doesn't contain too many entries.
Next comes the message entry. On both the '128 to 64' and the 128
messages, you are limited to the amount of characters you can type. Please
note these numbers and abide by them. The program will not let you have
more than the Max. In your message, you may contain control characters like
color changes, clear screen, etc. For the 128 Bootmaker, you may also
contain control codes like CTRL N to switch to lowercase, CTRL O to flash
characters (on 80 column screen only). However, each control character DOES
count as a character. To enter your message, answer NO to the question 'Use
this message (y/n/c)', and the program will stop and display a line
containing M$. Type your desired message along with any control characters
in the quotes then hit RETURN to enter the line, then cursor down to the
GOTO command and hit RETURN to start the program running again. The 'C' in
the 'Use This Message' prompt stands for color change and will let you set
the border and background colors (on the 40 column screen ONLY). So far
there is no way for the booter to change the colors of the 80 column screen
(yet).
The '128 To 64 Bootmaker' message is a little different, as the
filename that is to be booted MUST be included in the boot message. But the
easiest way to do this is write your message that you want shown, then
change the color of the message to the background color, then type the
filename. The filename will then be invisible during the autobooting. The
'128 Bootmaker' can be anything you want and doesn't have to be included in
the message. You can even use an asterisk (*) and it will Autoboot the
first program on the disk. Just be sure to include the asterisk in the
message.
The default messages are there as a sample and I'll explain what each
command does, to give you an idea of how to do your own messages:
128 To 64 Default Message
-------------------------
(lowercase)(5 crsr down)(8 crsr right)(white)Booting Your 64 Program
(black)filename
The (lowercase) command is entered by typing CTRL-N and shows up as a
reverse small n. It's used to switch to lowercase so that you can type
upper and lower case letters. If you were to leave this command out, then
all capital letters that you type would appear as graphics characters
during the actual booting process. The (crsr down) and (crsr right)
commands are there to center the message on the screen during the boot.
(white) changes the character color to white. (Booting Your 64 Program) is
wh